package io.terminus.spzx.manager.service;

import io.terminus.spzx.model.entity.system.SysMenu;
import io.terminus.spzx.model.vo.system.SysMenuVo;

import java.util.List;

/**
 * @author lichunlong lcl253137@alibaba-inc.com
 * @desc 系统菜单Service接口
 * @date 2024-07-29
 */
public interface SysMenuService {

    /**
     * 查询菜单列表
     *
     * @return 菜单列表
     */
    List<SysMenu> findNodes();

    /**
     * 添加菜单
     *
     * @param sysMenu 系统菜单
     */
    void save(SysMenu sysMenu);

    /**
     * 修改菜单
     *
     * @param sysMenu 系统菜单
     */
    void update(SysMenu sysMenu);

    /**
     * 删除菜单
     *
     * @param id 菜单ID
     */
    void removeById(Long id);

    /**
     * 根据用户ID查询分配的菜单列表
     *
     * @return 菜单列表
     */
    List<SysMenuVo> findMenusByUserId();
}
